﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ZOIL.DataBackend;
using System.Windows.Media;
using ZOIL.DataModel;
using ZOIL.Framework.Presentation;

namespace ZOIL.Library.Components
{
    public class ImageCard : DInformationObject, IRemoteUpdateable, Card
    {
        public ImageCard()
            : base()
        {

        }

        #region Properties

        public int? ProID
        {
            get
            {
                return (int?)GetValue("ImageCard:ProID");
            }
            set
            {
                SetValue("ImageCard:ProID", value);
                RaisePropertyChangedEvent("ProID");
            }
        }

        public int? CategoryID
        {
            get
            {
                return (int?)GetValue("ImageCard:CategoryID");
            }
            set
            {
                SetValue("ImageCard:CategoryID", value);
                RaisePropertyChangedEvent("CategoryID");
            }
        }

        public int? ZoomLevel1
        {
            get
            {
                return (int?)GetValue("ImageCard:ZoomLevel1");
            }
            set
            {
                SetValue("ImageCard:ZoomLevel1", value);
                RaisePropertyChangedEvent("ZoomLevel1");
            }
        }

        public int? ZoomLevel2
        {
            get
            {
                return (int?)GetValue("ImageCard:ZoomLevel2");
            }
            set
            {
                SetValue("ImageCard:ZoomLevel2", value);
                RaisePropertyChangedEvent("ZoomLevel2");
            }
        }

        public String ImgUrl
        {
            get
            {
                return GetValue<String>("ImageCard:ImgUrl");
            }
            set
            {
                SetValue("ImageCard:ImgUrl", value);
                RaisePropertyChangedEvent("ImgUrl");
            }
        }

        public int? CardID
        {
            get
            {
                return (int?)GetValue("ImageCard:CardID");
            }
            set
            {
                SetValue("ImageCard:CardID", value);
                RaisePropertyChangedEvent("CardID");
            }
        }

        public int? FakeZoomLevelOut
        {
            get
            {
                return (int?)GetValue("ImageCard:FakeZoomLevelOut");
            }
            set
            {
                SetValue("ImageCard:FakeZoomLevelOut", value);
                RaisePropertyChangedEvent("FakeZoomLevelOut");
            }
        }

        public int? FakeZoomLevelIn
        {
            get
            {
                return (int?)GetValue("ImageCard:FakeZoomLevelIn");
            }
            set
            {
                SetValue("ImageCard:FakeZoomLevelIn", value);
                RaisePropertyChangedEvent("FakeZoomLevelIn");
            }
        }

        public int? Topic
        {
            get
            {
                return (int?)GetValue("ImageCard:Topic");
            }
            set
            {
                SetValue("ImageCard:Topic", value);
                RaisePropertyChangedEvent("Topic");
            }
        }

        public String LogoUrl
        {
            get
            {
                return GetValue<String>("ImageCard:LogoUrl");
            }
            set
            {
                SetValue("ImageCard:LogoUrl", value);
                RaisePropertyChangedEvent("LogoUrl");
            }
        }

        public String TextureUrl
        {
            get
            {
                return GetValue<String>("ImageCard:TextureUrl");
            }
            set
            {
                SetValue("ImageCard:TextureUrl", value);
                RaisePropertyChangedEvent("TextureUrl");
            }
        }

        public int? LeftID
        {
            get
            {
                return (int?)GetValue("ImageCard:LeftID");
            }
            set
            {
                SetValue("ImageCard:LeftID", value);
                RaisePropertyChangedEvent("LeftID");
            }
        }

        public int? RightID
        {
            get
            {
                return (int?)GetValue("ImageCard:RightID");
            }
            set
            {
                SetValue("ImageCard:RightID", value);
                RaisePropertyChangedEvent("RightID");
            }
        }

        public int? TopID
        {
            get
            {
                return (int?)GetValue("ImageCard:TopID");
            }
            set
            {
                SetValue("ImageCard:TopID", value);
                RaisePropertyChangedEvent("TopID");
            }
        }

        public int? BottomID
        {
            get
            {
                return (int?)GetValue("ImageCard:BottomID");
            }
            set
            {
                SetValue("ImageCard:BottomID", value);
                RaisePropertyChangedEvent("BottomID");
            }
        }

        #endregion Properties


        #region IRemoteUpdateable Members

        public void OnRemoteUpdate()
        {
            
        }

        #endregion

        #region Card Members

        private ZID _parent;

        public ZID ParentZID
        {
            get
            {
                return _parent;
            }
            set
            {
                _parent = value;
            }
        }

        private bool _onScreen;

        public bool onScreen
        {
            get
            {
                return _onScreen;
            }
            set
            {
                _onScreen = value;
            }
        }

        public new ZID ID
        {
            get
            {
                return base.ID;
            }
            set
            {
                base.ID = value;
            }
        }

        #endregion
    }
}